package com.zhongke.cotrun.model.enums;


/**
 * <p>作者 yhl
 * <p>日期 2018-12-14 14:18
 * <p>说明 错误码
 */
public enum ErrorCode {

    // 全局系统错误：5000-9999  （未知错误：5000）6000-7000 平台账号相关
    // 业务通用错误：10000-19999（未知错误：10000）
    // 房屋相关错误：20000-29999（未知错误：20000）
    // 门店相关错误：30000-39999（未知错误：30000）
    // 房东相关错误：40000-49999（未知错误：40000）

    // ################全局系统错误########################
    SYSTEM_UNKNOWN_ERROR(5000, "系统未知错误"),               // 系统错误
    SYSTEM_RUNTIME_ERROR(5001, "系统运行时异常"),

    INTERFACE_INVOKE_HAD_ERROR(5500, "接口调用错误"),
    MODEL_NOT_MATCH_FOR_QUERY(5501, "查询模型不匹配"),
    MODEL_NOT_MATCH_FOR_RETURN(5502, "返回模型不匹配"),

    // 平台账号相关
    USER_INFO_INIT_ERROR(6000, "用户信息初始化出错"),
    USER_NAME_IS_NULL(60001, "用户名不能为空"),
    ACCOUNT_TYPE_IS_NUL(60002, "账号类型不能为空"),
    PLATFORM_TYPE_IS_NULL(60003, "平台类型不能为空"),


    // ################业务通用错误########################
    UNKNOWN_ERROR(10000, "未知错误"),                         // 业务错误
    PARAMETER_IS_NULL(10001, "必填参数为空"),                  // 所传参数为空
    PARAMETER_VALIDATE_ERROR(10002, "参数校验/验证错误"),    // 参数验证
    ;
    private int code;
    private String desc;

    ErrorCode(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public static ErrorCode codeOf(int code) {
        for (ErrorCode item : ErrorCode.values()) {
            if (item == null) {
                continue;
            }
            if (code == item.code) {
                return item;
            }
        }
        return null;
    }
}
